package com.txc.cloud.admin.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.txc.cloud.admin.entity.RoleEntity;
import com.txc.cloud.admin.model.vo.RoleVo;
import com.txc.common.config.mybatisplus.annotation.DataScope;
import com.txc.common.global.model.SysRole;

import java.util.List;
import java.util.Set;

import static com.txc.common.config.mybatisplus.constant.DataScopeConstants.DATA_SCOPE_SELF;

/**
 * <p>
 * 角色表 Mapper 接口
 * </p>
 *
 * @author TXC
 * @since 2023-08-02
 */
public interface RoleMapper extends BaseMapper<RoleEntity> {
    /**
     * 根据用户id查询角色
     * @param userId 用户id
     */
    List<SysRole> getRoleByUserId(Long userId);

    /**
     * 获取用户数据权限
     * @param userId 用户id
     * @return 数据权限
     */
    Set<String> getDataScopeByUserId(Long userId);

    /**
     * 查询角色列表
     * @return 角色列表
     */
    @DataScope(tableAlias = "sur", oneselfScopeName = "user_id", defaultDataScope = DATA_SCOPE_SELF)
    List<RoleVo> getRoleList();
}
